farmterritoryfandomcom_ru-20200215-history
Модуль:Crops
local p = {} local arrData = mw.loadData( 'Module:DataCrops' ) local common = require( "Module:Common" ) local id = "" local tp="" --Список семян выбранного типа-- function p.list(frame) local data=getitems() local width=50 tp = frame.args1 -- создание таблицы-- local root = common.getCreateTable() local arrHeadTable={ 'Уровень', 'Название', 'Рост, часы ', 'Покупка 15px ', 'Продажа 15px ', 'Рост, часы', 'Доход 15px ', "Доход в час 15px ", } if tp "all" then arrHeadTable#arrHeadTable+1='Категория' end arrHeadTable#arrHeadTable+1='Локация' arrHeadTable#arrHeadTable+1='Домик агронома' root: node(common.getCreateHeadTable(arrHeadTable)) local j=0 for i, v in ipairs(data) do if tp 'all'or v.tp tp then trbody =root:tag('tr') trbody:tag('td') :css('text-align', "center") :css('width', width+2) :wikitext(v.level..''..width..'px|center') trbody:tag('td') :wikitext(''..v.name..'') trbody:tag('td') :css('text-align', 'center') :wikitext(v.tm) trbody:tag('td') :css('text-align', 'center') :wikitext(v.buy) trbody:tag('td') :css('text-align', 'center') :wikitext(v.sell) trbody:tag('td') :css('text-align', 'center') :wikitext(v.rez1) trbody:tag('td') :css('text-align', 'center') :wikitext(v.rez2) if tp "all" then trbody:tag('td') :wikitext(''..v.tp..'') end trbody:tag('td') :wikitext(v.location) trbody:tag('td') :wikitext(v.agronom) j=j+1 end end local caption = root:tag('caption') :css('text-align', 'left') :wikitext("Всего: "..j) return tostring( root ) end --Временная страница для контроля загрузки фоток-- function p.photo() local data=getitems() local total=0 local text='' for i, v in ipairs(data) do text=text.."".. ""..v.name.."".. " ".. "".. " ".. "".. "".. "50px".. "".. "".. "50px".. "".. "".. "50px".. "".. "".. "50px".. "".. "".. "50px".. "".."" end return " ".. " ".. " Имя ".. " big ".. " tree ".. " Имя ".. " бРО ".. " сер ".. " зол ".. " пл ".. " алм ".. " "..text.. " " end --Получить список семян-- function getitems() local data={} local i=1 for key, v in pairs(arrData) do datai={name=v.name,tm=v.tm,tp=v.tp, bronze=v.bronze, silver=v.silver, gold=v.gold,platinum=v.platinum, diamond=v.diamond} datai.sell=(v.sell 0) and '' or v.sell datai.buy=(v.buy 0 or v.buy 'vip') and '' or v.buy datai.level=(v.level 0) and '' or "c "..v.level.." ур. " datai.location=(v.location '') and 'Любые' or ''..v.location..'' datai.rez1=(datai.buy~='' and datai.sell~='' ) and (v.sell-v.buy) or '' datai.rez2=(v.tm~=0 and datai.sell~='' ) and (math.floor((v.sell-v.buy)/v.tm*100)/100) or '' if pcall(function () if v.agronom nil then error() end end) then if v.location 'Остров динозавров' then datai.agronom='Доисторический агроном' else datai.agronom='Домик агронома' end else datai.agronom='' end i=i+1 end table.sort(data,function( a, b ) return a.name < b.name end ) return data end --Карточка растения (семена)-- function p.getView( frame ) id = frame.args1 return path().. infobox().. description().. placeBuy().. level().. location().. ' Загружается на фабрики '..(require("Module:Factory").fab(id)).. ' Можно скормить животным '..(require("Module:Animal").fab(id)).. experience().. medal().. 'Category:Семена'.. '[[Category:'..arrDataid.tp..']]' end function path() return ' [['..arrDataid.tp1..']] / [['..arrDataid.tp..']] / '..id..' ' end function infobox() local text=' '.. ' '..id..' '.. ' center '.. ' '.. ' '.. ' Категория '.. ' [['..arrDataid.tp..']] '.. ' '.. ' '.. ' Рост, часы '.. ' '..arrDataid.tm..' �� '.. ' '.. ' '.. ' Уровень '.. ' ' if arrDataid.level~=0 then text=text..arrDataid.level end text=text..' '.. ' '.. ' '.. ' '.. ' Цена '.. ' ' text=text..' Покупка '.. ' ' if pcall(function () if arrDataid.vip nil then error() end end) then text=text..'требуются vip - жетоны' else if arrDataid.buy~=0 then text=text..arrDataid.buy..' 15px' end end text=text..' '.. ' '.. ' '.. ' Продажа '.. ' ' if arrDataid.sell~=0 then text=text..arrDataid.sell..' 15px' end text=text..' '.. ' '.. ' '.. ' '.. ' Доход '.. ' '.. ' Доход '.. ' ' if arrDataid.buy~=0 and arrDataid.sell~=0 then text=text..(arrDataid.sell - arrDataid.buy)..' 15px' end text=text..' '.. ' '.. ' '.. ' Доход в час '.. ' ' if arrDataid.tm~=0 and arrDataid.sell~=0 then text=text..(math.floor((arrDataid.sell-arrDataid.buy)/arrDataid.tm*100)/100)..' 15px' end text=text..' '.. ' '.. ' '.. ' ' return text end function description() local text=' Описание '.. ' center|50px '.. ' Растение относится к категории [['..arrDataid.tp..']] и поэтому, как и все семена, выращивается в зоне Поле. ' if (pcall(function () if arrDataid.agronom nil then error() end end)) then text=text..' Чтобы вырастить растение, надо вскопать грядку в зоне Поле, затем создать семена в Домике агронома и посадить их на грядку. ' else text=text..' Чтобы вырастить растение, надо вскопать грядку в зоне Поле, затем купить семена в Магазине и посадить их на грядку. ' end text=text..' Собрать урожай можно только после того, как он достигнет зрелости (100%). У каждого растения свое индивидуальное время роста. Наведите курсор мышки на растение и увидите, сколько времени осталось до сбора урожая. '.. ' Для сбора урожая щелкните мышкой по растению, грядка опустеет, а растение автоматически переместится на склад. '.. ' Собранный урожай можно продать, переработать на фабрике или скормить животным. ' return text end function placeBuy() local text=' Место покупки растения ' if (pcall(function () if arrDataid.agronom nil then error() end end)) then text=text..p.agronom(id) else text=text..' Семена этого растения продаются в Магазине. ' end return text end function level() local text="" text=text..' Уровень ' if arrDataid.level~=0 then text=text..' Семена этого растения могут сажать игроки '..arrDataid.level..' уровня и выше. ' else text=text..' Информацмя об уровне, с которого можно сажать это растение, отсутствует. ' end return text end function location() local text="" text=text..' Локация ' if arrDataid.location '' then text=text..' Можно выращивать в любой локации, в которой есть зона Поле. ' else text=text..' Можно выращивать только в локации [['..arrDataid.location..']]. ' end return text end function experience() local text="" text=text..' Опыт '.. ' За посадку и сбор урожая 1 единицы растения начисляется опыт, который необходим для перехода к следующему уровню игры. ' return text end function medal() local text="" text=text..' Медали '.. ' За сбор урожая даются медали. Медали позволяют увеличить количество опыта за сбор 1 единицы растения. ' if arrDataid.bronze~=0 then text=text..' Для получения медали требуется собрать на игровом поле определенное количество растений: ' local root = mw.html.create('table'):addClass('crop') local head =root:tag('tr') local body=root:tag('tr') head: tag('th'):wikitext("") head: tag('th'):wikitext("Бронзовая медаль") body: tag('td'):wikitext('Количество растений') body: tag('td'):wikitext(arrDataid.bronze):css('text-align', 'center') head: tag('th'):wikitext("Серебрянная медаль") body: tag('td'):wikitext((arrDataid.silver 0) and "" or arrDataid.silver):css('text-align', 'center') head: tag('th'):wikitext("Золотая медаль") body: tag('td'):wikitext((arrDataid.gold 0) and "" or arrDataid.gold):css('text-align', 'center') head: tag('th'):wikitext("Платиновая медаль") body: tag('td'):wikitext((arrDataid.platinum 0) and "" or arrDataid.platinum):css('text-align', 'center') head: tag('th'):wikitext("Алмазная медаль") body: tag('td'):wikitext((arrDataid.diamond 0) and "" or arrDataid.diamond):css('text-align', 'center') text=text..tostring(root) end return text end function p.agronom(id) local text=' Семена этого растения создаются в Домике агронома. ' if not pcall(function () if arrDataid.create nil then error() end end) then return text end text=text..' Сначала в Домике агронома проводится исследование, для которого потребуется: ' local td1="" local td2="" local td3="" for key, v in pairs(arrDataid.create) do td1=td1..' '..v.name..' ' td2=td2..' ' td3=td3..' '..v.c if v.name~='Монеты' then td3=td3..' шт.' end if pcall(function () if arrDatav.name.buy nil then error() end end) then td3=td3..' = '..arrDatav.name.buy*v.c..' 15px' end td3=td3..' ' end text=text.. ' '..td1..' '.. ' '..td2..' '.. ' '..td3..' '.. ' ' text=text..' Время исследования: '..arrDataid.createtm..' час. '.. ' Исследование проводится только один раз - чтобы разблокировать создание семян. '.. ' Когда исследование закончено, можно начинать создавать семена. Для создания 1 единицы семян потребуется: '.. ' ' text=text..' ' local td1="" local td2="" local td3="" for key, v in pairs(arrDataid.agronom) do td1=td1..' '..v.name..' ' td2=td2..' ' td3=td3..' '..v.c if v.name~='Монеты' then td3=td3..' шт.' end if pcall(function () if arrDatav.name.buy nil then error() end end) then td3=td3..' = '..arrDatav.name.buy*v.c..' 15px' end td3=td3..' ' end text=text.. ' '..td1..' '.. ' '..td2..' '.. ' '..td3..' '.. ' ' return text end --Временная таблица для сверки опыта function p.medallist() local data=getitems() local text=" Семена брон серебро золото Платина Алмаз " for i, v in ipairs(data) do text=text.." ".. " "..datai.name.." ".. " "..datai.bronze.." ".. " "..datai.silver.." ".. " "..datai.gold.." ".. " "..datai.platinum.." ".. " "..datai.diamond.." " text=text.." " end return text.." " end return p